﻿using System;
using System.Collections.Generic;
using System.Text;

namespace designmodule.behavioralmodule.Interpreter.Demo
{
    class program
    {
        void main()
        {
            //其实有点类似命令模式，但是这个是纯粹  解释器对解释的算法抽象，一个一个解释器进行
            //命令模式需要有调度者进行执行命令开始， 命令中要包含接收者接收命令，命令只是命令数据抽象
            var context = new Playcontext();
            context.Text = "O 2 E 0.5 G 0.5 A 3 E";
            Expression expression = null;
            while (context.Text.Length>0)
            {
                string str = context.Text.Substring(0, 1);
                switch (str)
                {
                    case "O":
                        expression=new Scale();
                        break;
                    default:
                        expression=new Note();
                        break;
                }

                expression.Interpret(context);
            }
        }
    }
}
